Динамический домен для поля Many2one
Коллеги, подскажите, как навесить вычисляемый домен в таком случае:
В Odoo 8 есть сущность «Договор», в которой
1. Указан «Поставщик» — ссылка на сущность «Партнер»
2. Есть поле «Ответственный со стороны поставщика» — ссылка на сущность «Контакт»
«Партнер» и «Контакт» связаны Many2Many
Нужно, чтобы в поле «Ответственный со стороны поставщика», в лукапе показывались только те контакты, которые связаны с указанным поставщиком.
Пробовал писать в модели сущности «Договор»:
Этот метод срабатывает только при создании нового договора или при изменении поля «Поставщик». Как быть в случае, когда форма уже существующего договора открывается на редактирование, но пользователь не трогает поле «Поставщик»?
В Odoo 8 есть сущность «Договор», в которой
1. Указан «Поставщик» — ссылка на сущность «Партнер»
2. Есть поле «Ответственный со стороны поставщика» — ссылка на сущность «Контакт»
«Партнер» и «Контакт» связаны Many2Many
Нужно, чтобы в поле «Ответственный со стороны поставщика», в лукапе показывались только те контакты, которые связаны с указанным поставщиком.
Пробовал писать в модели сущности «Договор»:
@api.onchange('vendor_id')
def onchange_vendor(self):
res = {}
if self.vendor_id:
vendor_contact_ids = self.vendor_id.contact_ids.mapped('id')
res['domain'] = {'vendcontact_id': [('id', 'in', vendor_contact_ids)]}
else:
res['domain'] = {'vendcontact_id': [('id', 'in', [])]
return res
Этот метод срабатывает только при создании нового договора или при изменении поля «Поставщик». Как быть в случае, когда форма уже существующего договора открывается на редактирование, но пользователь не трогает поле «Поставщик»?